跳到主要内容

使用 SCIM 进行用户和组的配置

使用 SCIM 进行用户和组的配置 - 主图

在本文中

您可以使用跨域身份管理系统(SCIM)API标准来为您的 Notion 工作区提供和管理用户和组 🔑

目录

  • 使用 Notion 的 SCIM API 可以做什么

  • 如何设置 SCIM 配置

  • 使用 Notion 的 SCIM 前提条件

  • 生成您的 SCIM API 令牌

  • 撤销令牌

  • 替换现有令牌

  • 服务提供商配置

  • 身份提供者 (IdP) 设置

  • Azure

  • Google

  • Gusto

  • Okta

-OneLogin

-Rippling

  • 用户


使用 Notion 的 SCIM API 可以做什么

用户配置与管理:

创建并删除工作区成员。

更新成员的个人资料信息。

检索工作区中的成员。

通过电子邮件或姓名查找成员。

群组配置和管理:

  • 在您的工作区中创建和删除群组。

  • 向群组添加和移除成员。

  • 检索您的工作区中的群组。

  • 根据名称查找群组。

不支持的功能:

  • 管理工作区访客。

如何使用 SCIM 设置配置

我们目前支持 Okta、OneLogin、Rippling、Gusto 和自定义 SCIM 应用。如果您使用其他身份提供者,请告诉我们。

使用 Notion 进行 SCIM 的先决条件

  • 您的工作区必须是企业计划

  • 您的身份提供者(IdP)必须支持 SAML 2.0 协议

  • 只有 Workspace Owner 才能为 Notion 工作区配置 SCIM

  • 至少一个域已由 Workspace Owner 验证。了解更多关于域验证 →

生成您的 SCIM API 令牌

企业计划工作区所有者可以通过转到 设置和成员安全性和身份SCIM 配置 来生成和查看 SCIM API 令牌。

  • 要生成新的令牌,请单击右上角的 + 新建令牌 按钮。

  • 每个工作区所有者都会生成一个唯一的令牌,只有他们自己才能查看。

注销令牌

当工作区所有者离开工作区或其角色发生变化时,他们的令牌将被注销。在这种情况下,系统会向剩余的工作区所有者发送自动消息,通知他们替换已注销的令牌。

此外,在工作区中任何一个工作区所有者都可以撤销活跃状态下的令牌。要撤销一个令牌,请点击相应标记旁边的 🗑️ 图标。

Replace existing tokens

如果一个令牌被撤销,您需要在任何现有的集成中替换它。

任何依赖于被撤销令牌的 SCIM 集成和用户配置将会被禁用,直到其被一个有效的令牌所取代。

**注意:**为了避免破坏现有的集成,请确保在取消配置之前替换与管理员相关联的所有令牌。

服务提供商配置

  • GET /ServiceProviderConfig

  • GET <https://api.notion.com/scim/v2/ServiceProviderConfig>

  • 检索可用 SCIM 规范功能的描述。

  • SCIM 协议规范第 5 节中定义。

  • GET /ResourceTypes

  • GET <https://api.notion.com/scim/v2/ResourceTypes>

  • 检索可用的 SCIM 资源类型列表。

  • SCIM 协议规范的第 6 节 中定义。

身份提供者(IdP)设置

Azure

要获取更多说明,您还可以参考 Azure Active Directory 帮助中心的文档:

Notion 的 Azure SCIM 集成支持以下提供功能:

  • 创建用户

  • 删除用户

  • 在 Azure AD 和 Notion 之间同步保留用户属性。

  • 在 Notion 中提供组和组成员身份。

  • 单点登录到 Notion(推荐)。

**注意:**有关规划您的部署计划的更多信息,请参考Azure文档

步骤1:配置Notion以支持与Azure AD的自动化配置

  • 登录到您的Notion工作区,打开

设置和成员身份验证和自动化配置选项卡,并滚动到SCIM自动化配置部分。

  • 如果尚未生成令牌,请单击

+ 添加令牌并复制该令牌。在第5.5步中,您将使用此令牌作为秘密令牌。

步骤 2:从 Azure AD 应用程序库中添加 Notion

  • 按照此处的说明,添加一个应用程序。

Azure AD 配置服务允许您根据分配给应用程序的用户或组的属性来确定谁将被配置。

  • 如果您选择根据分配来确定谁将被配置到您的应用程序中,可以使用以下步骤为用户和组分配权限。

  • 如果您选择仅基于用户或组属性来确定谁将被配置,可以使用如下所述的筛选器进行范围限定,请参阅此处步骤 3:配置自动用户提供给 Notion

  • 登录到 Azure 门户。选择 企业应用程序,然后选择 所有应用程序

  • 在应用程序列表中,选择 Notion

  • 选择 Provisioning 标签页。

  • Provisioning Mode 设置为 Automatic

  • Admin Credentials(管理员凭据) 部分,输入您的 Notion 租户 URL 和 Secret Token。点击 Test Connection(测试连接) 确保 Azure AD 可以连接到 Notion。如果连接失败,请确保您的 Notion 账户具有管理员权限,并重试。

  • 选择 Save(保存).

  • 在映射部分下,选择将 Azure Active Directory 用户同步到 Notion 的选项.

  • 查看在属性映射部分从 Azure AD 同步到 Notion 的用户属性. 如果有任何更改,请点击保存按钮进行提交.

  • 在映射部分下, 请选择将 Azure Active Directory 组同步到 Notion 的选项.

  • 查看在属性映射部分从 Azure AD 同步到 Notion 的组属性. 如果有任何更改,请点击保存按钮进行提交.

  • 若要启用针对Notioin的Azure AD提供服务,请在设置部分将 "Provisioning Status" 更改为 "On".

  • 使用“Settings” 部分中的 “Scope” 来定义要提供给Notioin的用户和/或组

  • 当准备好开始提供时,点击 Save(保存)

注意:Azure SCIM

**注意:**此操作会启动“设置”部分中定义的Scope中所有用户和组的初始同步周期。

与后续周期相比,初始周期执行时间较长,后续周期大约每40分钟进行一次,只要Azure AD provisioning服务正在运行。

Google

有关更多说明,请参考Google Workspace管理帮助中心的文档:

Notion的Google SCIM集成支持以下供应功能:

  • 创建用户

  • 更新用户属性(如果该用户具有属于您组织的电子邮件域)

  • 停用用户(这将从您的Notion工作区移除用户)

**注意:**谷歌的 SCIM 集成不支持组的配置和取消配置。

步骤 1:在 Notion 中启用用户配置

  • 进入“设置与成员”选项卡,然后选择“身份验证与配置”选项卡

  • 向下滚动到“SCIM 配置”部分(您可用的 SCIM 令牌将列出)

  • 在 SCIM 令牌表中,要么点击现有令牌旁边的“复制”,要么点击右上角的“添加令牌”来创建一个新的令牌

步骤 2:在谷歌中进行配置

Gusto

参考 Gusto 获取更详细关于设置过程方面帮助:

步骤 1:单击连接并按照说明验证您的账户凭据

  • 在 Notion 的侧边栏中,转到“设置与成员” -> “身份验证与配置”

  • 在 SCIM 配置下,点击“添加令牌”并复制该令牌

  • 在 Gusto 上,将令牌粘贴到 SCIM API 密钥字段,并输入您的 Notion 账户电子邮件

步骤 2:在 Gusto 中将 Notion 用户账户与团队成员匹配起来

Okta

Notion的Okta集成支持以下配置功能:

  • 创建用户
  • 更新用户属性(如果用户具有属于您组织的电子邮件域)
  • 停用用户(这将从您的Notion工作区中删除用户)
  • 推送群组

步骤1:在Notion中启用配置

  • 转到“设置和成员”选项卡,然后选择“身份验证和配置”选项卡
  • 向下滚动到"SAML单点登录(SSO)"部分
  • 打开"编辑SAML SSO配置"按钮
  • 点击"Assertion Consumer Service (ACS) URL"旁边的复制链接。将其粘贴到稍后检索。
  • 返回“设置和成员 → 身份验证和配置”,向下滚动到“SCIM provisioning”部分
  • 如果尚未生成令牌,请点击"+添加令牌"并复制该令牌。将其粘贴到稍后检索。

步骤2:在Okta中进行配置

Okta应用程序目录添加"Notion应用程序"。

登录选项视图上,在登录应用程序选项卡上为Application username格式选择 "Email".

Provisioning(供应) 选项卡下,选择 Configure API integration, 并勾选 Enable API integration checkbox.

将第一步中复制的 Notion SCIM API token 输入到 API Token 文本框中,并选择 Save.

点击 Provisioning to App(供应至应用程序) 标题旁边的编辑按钮,启用您所需的功能:创建用户、更新用户属性或停用用户。点击 Save.

设置完API集成后,打开"Push Groups(推送群组)"选项卡,并从“Push Groups”按钮中添加要与Notion同步的Okta群组。

注意: 在使用现有的 SCIM 配置更新用户/组时,请不要从 Okta 中删除 Notion 应用程序。这样做将会从工作区中移除所有已配置的用户。

如果在设置与 Okta 的提供功能时遇到任何问题,请通过 [email protected] 联系我们。

OneLogin

您还可以参考 OneLogin 网站上的步骤,获取更多文档信息:

Notion 的 OneLogin 集成支持以下提供功能:

  • 创建用户

  • 更新用户属性(如果该用户具有属于您组织的电子邮件域)

  • 停用用户(这将从您的 Notion 工作区中移除用户)

  • 创建规则以将 OneLogin 角色映射到 Notion 中的权限组

注意: 如果计划通过 OneLogin 向 Notion 提供用户,则在配置 SSO 之前配置 SCIM 是很重要的。

第一步:启用 Notion 中的提供功能

  • 进入 设置和成员 选项卡,然后选择 身份验证和提供功能 选项卡。

  • 滚动至 SAML 单点登录 (SSO) 部分。

  • 打开 编辑 SAML SSO 配置 按钮。

  • 点击旁边的 断言消费者服务 (ACS) URL 复制链接。将其粘贴到某个地方以便稍后检索。

  • 返回到 设置和成员 → 身份验证和提供功能,然后滚动至 SCIM 提供功能 部分

  • 如果尚未生成令牌,请点击 + 添加令牌 并复制该令牌。将其粘贴到某个地方以便稍后检索。

**注意:**只有工作区所有者可以复制和使用他们自己生成的令牌。如果另一个工作区所有者已经创建了一个令牌,您可以协调确定是否需要另一个令牌。一旦生成令牌的工作区所有者离开工作区或被降级为成员,所有令牌都将过期。

步骤2:在OneLogin中配置供应

  • 转到 管理 → 应用程序 → 应用程序

  • 点击“添加应用”按钮,在搜索框中搜索Notion,并选择Notion的SAML 2.0版本。

  • 点击 保存

  • 转到 配置 选项卡

  • 断言消费服务(ACL)URL 粘贴到 消费者URL 文本框中

  • SCIM API 令牌 粘贴到 SCIM Bearer Token 文本框中

  • 点击 启用

  • 转到 供应商设置(Supplier Settings) 选项卡

  • 流程(Workflow) 下勾选 “启用供应”

  • 单击右上角的“保存”按钮

  • (可选) 在用户创建、删除或更新之前要求管理员批准时,启用或禁用此操作下方的 "需要管理员批准"

  • (可选) 当从OneLogin删除用户时,在Notion中选择该用户会发生何种情况。选择"删除"(从Notion工作区中删除用户)或"不执行任何操作"。

  • 单击右上角的“保存”按钮

Rippling

详细的文档可以在 Rippling 的网站上查看:

用户

下表列出了 SCIM 用户属性与 Notion 用户配置文件字段之间的映射关系。其他用户属性将被忽略。

SCIM 用户属性

  • GET /Users

  • GET <https://api.notion.com/scim/v2/Users>

  • 检索工作区成员的分页列表。

  • 您可以使用 startIndexcount 参数进行分页。请注意,startIndex 是从 1 开始计数的。

  • 您可以使用 filter 参数过滤结果。可用于过滤的有效属性包括 email, given_name, 和 family_name,例如:GET <https://api.notion.com/scim/v2/Users?startIndex=1&count=50&filter=email> eq [email protected]

  • 请注意,given_namefamily_name 区分大小写。电子邮件会转换为小写。

  • GET /Users/<id>

  • GET <https://api.notion.com/scim/v2/Users/><id>

  • 通过 Notion 用户 ID 检索特定的工作区成员。这将是一个包含 32 个字符的 UUID,格式如下:00000000-0000-0000-0000-000000000000

  • 注意,meta.createdmeta.lastModified 不反映有意义的时间戳值。

  • POST /Users

  • POST <https://api.notion.com/scim/v2/Users>

  • 如果您要添加的用户已经具有相同电子邮件地址的 Notion 用户帐户,则他们将被添加到您的工作区。

  • 如果用户不存在,则调用此方法将创建一个新的 Notion 用户,并将该用户添加到您的工作区。他们将与所创建的 Notion 用户配置文件进行映射。

  • PATCH /Users/<id>

  • PATCH <https://api.notion.com/scim/v2/Users/><id>

通过一系列操作进行更新,并返回更新后的用户记录。 **注意:**只有在验证了用户的电子邮件域所有权后,才能更新成员的个人资料信息(这通常与您为 Notion 配置的 SAML 单点登录的电子邮件域相同)。请联系我们以验证新的电子邮件域。

  • PUT /Users/<id>

  • PUT <https://api.notion.com/scim/v2/Users/><id>

  • 更新,并返回已更新的用户记录。

  • DELETE /Users/<id>

  • DELETE <https://api.notion.com/scim/v2/Users/><id>

  • 从工作区中删除用户。该用户将被注销所有活动会话。

  • 用户帐户无法通过 SCIM 删除。必须手动删除帐户。

  • 也可以通过将active用户属性设置为false来从工作区中移除用户,方法是发送一个PATCH /Users/<id>或者一个PUT /Users/<id>请求。

**注意:**创建 SCIM 机器人令牌的工作区所有者无法通过 API 移除自己。当通过 SCIM API 移除工作区所有者时,他们创建的任何令牌都将被撤销,并且使用该机器人进行集成的任何应用程序都将失效。

群组

  • GET /Groups

  • GET <https://api.notion.com/scim/v2/Groups>

  • 检索工作区群组的分页列表。

  • 您可以使用startIndexcount参数进行分页。请注意,startIndex是从 1 开始计数,而 count 的最大值为 100,例如:GET <https://api.notion.com/scim/v2/Groups?startIndex=1&count=5>

  • 如果不使用分页,则在请求中返回最多 100 个工作区群组。

  • 您可以使用filter参数过滤结果。群组可以通过其 displayName 属性进行过滤,例如: GET <https://api.notion.com/scim/v2/Groups?filter=displayName> eq Designers

  • GET /Groups/<id>

  • GET <https://api.notion.com/scim/v2/Groups/><id>

  • 根据 Notion 群组 ID 检索特定的工作区群组。这将是一个带有32个字符的 UUID,格式如下: 00000000-0000-0000-0000-000000000000.

    • POST /Groups
  • POST <https://api.notion.com/scim/v2/Groups>

  • 创建一个新的工作区群组。

  • PATCH /Groups/<id>

  • PATCH <https://api.notion.com/scim/v2/Groups/><id>

  • 通过一系列操作更新工作区群组。

  • PUT /Groups/<id>

  • PUT <https://api.notion.com/scim/v2/Groups/><id>

  • 更新工作区群组。

  • DELETE /Groups/<id>

  • DELETE <https://api.notion.com/scim/v2/Groups/><id>

删除一个工作区群组。

注意 如果删除会导致没有人对一个或多个页面拥有完全访问权限,则禁止删除该群组。